<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>类型转化</title>
</head>
<body>
<script type="text/javascript">
  /*
  //字符串类型转化
  var num = 100;
  console.log(num);
  console.log(typeof num); //number
  console.log(num.toString());
  console.log(typeof num.toString());

  //String（变量）  //调用String函数
  console.log( String(num) ); //100

  //num变量本省没有被改变类型
  console.log(num); //100

  // console.log(undefined.toString()); //报错
  console.log(String(undefined)); //"undefined"
  // console.log(null.toString()); //报错
  console.log(String(null));  //"null"

  //拼接字符串方式
  //num  +  ""，当 + 两边一个操作符是字符串类型，一个操作符是其它类型的时候，会先把其它类型转换成字符串再进行字符串拼接，返回字符串
  console.log(num + ""); //"100"
  */
</script>
<script type="text/javascript">
/*
    //转化为number数值类型
  //1.Number()函数
  var a = 1;
  var b = '100';
  var c = 'abcd';
  var d = true;
  var e = undefined;
  var f = null;

  console.log(Number(a)); //1
  console.log(Number(b)); //100
  console.log(Number(c)); //NaN
  console.log(Number(d)); //1->true:1;false:0
  console.log(Number(e)); //NaN
  console.log(Number(f)); //0

  //字母字符串 和 undefined 转化为数值 NaN  Not a Number 不是一个数字
  //NaN 是一个数值类型，不是具体数字 1 2 3
  console.log(NaN == NaN); //false 和任何值都不相等，包括NaN本身
  console.log(NaN == 1); //false

  //!**判断一个值是不是NaN，调用函数isNaN()
  var value = NaN;  //value不是一个数字
  console.log( isNaN(a) ); //false
  console.log( isNaN(value) );  //true

  //2.parseInt()  把字符串转化为整数
  var a = parseInt('1,2f');
  var b = parseInt(1);
  var c = parseInt('c12');
  var d = parseInt(null);
  var e = parseInt(undefined);
  console.log(a, b, c, d, e); //1 1 NaN NaN NaN
  // 如果第一个字符是数字会解析,直到遇到非数字结束
  // 如果第一个字符不是数字或者符号就返回NaN
  /!*console.log(a); //1
  console.log(b); //1
  console.log(c); //NaN
  console.log(d); //NaN
  console.log(e); //NaN*!/

  //3.parseFloat()  把字符串转换成浮点数
  var a = parseFloat('1.2f');
  var b = parseFloat('1.3.4');
  var c = parseFloat('c12');
  var d = parseFloat(null);
  var e = parseFloat(undefined);
  console.log(a, b, c, d, e); //1.2 1.3 NaN NaN NaN
  // parseFloat() 把字符串转换成浮点数
  // parseFloat()和parseInt非常相似，
  // 不同之处在与parseFloat会解析第一个 . 遇到第二个.或者非数字结束
  // 如果解析的内容里只有整数，解析成整数

  //4. +, -, -0等运算符
  var str = '500';
  console.log( +str ); //500 取正
  console.log( -str ); //-500 取反
  console.log(str -0);
  */
</script>
<script type="text/javascript">
    //转换成布尔类型
    var a = Boolean('0');
    var b = Boolean(0);
    var c = Boolean('1');
    var d = Boolean(null);
    var e = Boolean(undefined);
    var f = Boolean(NaN);

    console.log(a, b, c, d, e, f); //true false true false false false
    // 0、''(空字符串) 、null、 undefined 、NaN 会转换成false  其它都会转换成true

</script>
</body>
</html>